package main

import (
	"fmt"

	"gitee.com/baihr/go-design-pattern/abstractfactory/impl"
)

func main() {
	// 对于客户端来说，调用方法与工厂方法模式一致，但是生成的对象粒度更小
	// （鞋厂-生产线-代工品牌-鞋），增强了扩展性
	antaFactory := impl.NewAntaFactory()
	antaFootballShoe := antaFactory.MakeFootballShoe()

	fmt.Printf("anta football shoe category is: %s, brand is: %s\n",
		antaFootballShoe.GetCategory(),
		antaFootballShoe.GetBrand())

	antaBasketballShoe := antaFactory.MakeBasketballShoe()
	fmt.Printf("anta basketball shoe category is: %s, brand is: %s\n",
		antaBasketballShoe.GetCategory(),
		antaBasketballShoe.GetBrand())
}
